package java_stack;

import java.util.Date;

public class LocalVariablesTest {
    private int count = 0;

    public static void main(String[] args) {
        LocalVariablesTest test = new LocalVariablesTest();
        int num = 10;
        test.test1();
    }

    public void test1() {
        Date date = new Date();
        String name1 = "baidu.com";
        String info = test2(date, name1);
        System.out.println(date + name1);
    }

    public String test2(Date dateP,
                        String name2) {
        String a = "hello";
        return dateP + name2;
    }

    public static String testx() {
        int a=2;
        String name = "baidu.com";
        return name;
    }
    public void test4() {

        int a = 0;
        {
            int b = 0;
            b = a + 1;
        }
        //变量c使用 之前已经销毁的变量b占据的slot的位置
        int c = a + 1;
    }
    public void tt5(){
        int i;
//        System.out.println(i);
    }
    public void testAddOperation(){
        byte i = 15;
        int j = 8;
        int k = i + j;
    }
//    如果被调用的方法带有返回值的话，其返回值将会被压入当
//            前栈帧的操作数栈中
    public int getSum() {
        int m = 10;
        int n = 20;
        int k = m + n;
        return k;
    }

    public void testGetSum() {
        //获取上一个栈桢返回的结果，并保存在操作数栈中
        int i = getSum();
        int j = 10;
    }

}




//解析
//反编译后，可得结论：
//
//在编译期间，局部变量的个数、每个局部变量的大小都已经被记录下来
//所以局部变量表所需的容量大小是在编译期确定下来的
